<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><link rel="stylesheet" type="text/css" href="style.css" /><script type="text/javascript" src="highlight.js"></script></head><body><pre><span class="hs-comment">-----------------------------------------------------------------------------</span><span>
</span><span id="line-2"></span><span class="hs-comment">--</span><span>
</span><span id="line-3"></span><span class="hs-comment">-- Types for the Dynamic Linker</span><span>
</span><span id="line-4"></span><span class="hs-comment">--</span><span>
</span><span id="line-5"></span><span class="hs-comment">-- (c) The University of Glasgow 2019</span><span>
</span><span id="line-6"></span><span class="hs-comment">--</span><span>
</span><span id="line-7"></span><span class="hs-comment">-----------------------------------------------------------------------------</span><span>
</span><span id="line-8"></span><span>
</span><span id="line-9"></span><span class="hs-keyword">module</span><span> </span><span class="hs-identifier">GHC.Runtime.Linker.Types</span><span> </span><span class="hs-special">(</span><span>
</span><span id="line-10"></span><span>      </span><span class="annot"><a href="GHC.Runtime.Linker.Types.html#DynLinker"><span class="hs-identifier">DynLinker</span></a></span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span class="hs-special">,</span><span>
</span><span id="line-11"></span><span>      </span><span class="annot"><a href="GHC.Runtime.Linker.Types.html#PersistentLinkerState"><span class="hs-identifier">PersistentLinkerState</span></a></span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span class="hs-special">,</span><span>
</span><span id="line-12"></span><span>      </span><span class="annot"><a href="GHC.Runtime.Linker.Types.html#Linkable"><span class="hs-identifier">Linkable</span></a></span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span class="hs-special">,</span><span>
</span><span id="line-13"></span><span>      </span><span class="annot"><a href="GHC.Runtime.Linker.Types.html#Unlinked"><span class="hs-identifier">Unlinked</span></a></span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span class="hs-special">,</span><span>
</span><span id="line-14"></span><span>      </span><span class="annot"><a href="GHC.Runtime.Linker.Types.html#SptEntry"><span class="hs-identifier">SptEntry</span></a></span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span>
</span><span id="line-15"></span><span>    </span><span class="hs-special">)</span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-16"></span><span>
</span><span id="line-17"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Prelude.html"><span class="hs-identifier">GHC.Prelude</span></a></span><span>             </span><span class="hs-special">(</span><span> </span><span class="annot"><a href="../../base/src/GHC.IO.html#FilePath"><span class="hs-identifier">FilePath</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier">String</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/GHC.Show.html#show"><span class="hs-identifier">show</span></a></span><span> </span><span class="hs-special">)</span><span>
</span><span id="line-18"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../time/src/Data.Time.html#"><span class="hs-identifier">Data.Time</span></a></span><span>               </span><span class="hs-special">(</span><span> </span><span class="annot"><a href="../../time/src/Data.Time.Clock.Internal.UTCTime.html#UTCTime"><span class="hs-identifier">UTCTime</span></a></span><span> </span><span class="hs-special">)</span><span>
</span><span id="line-19"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/Data.Maybe.html#"><span class="hs-identifier">Data.Maybe</span></a></span><span>              </span><span class="hs-special">(</span><span> </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Maybe"><span class="hs-identifier">Maybe</span></a></span><span> </span><span class="hs-special">)</span><span>
</span><span id="line-20"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/Control.Concurrent.MVar.html#"><span class="hs-identifier">Control.Concurrent.MVar</span></a></span><span> </span><span class="hs-special">(</span><span> </span><span class="annot"><a href="../../base/src/GHC.MVar.html#MVar"><span class="hs-identifier">MVar</span></a></span><span> </span><span class="hs-special">)</span><span>
</span><span id="line-21"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Unit.html"><span class="hs-identifier">GHC.Unit</span></a></span><span>                </span><span class="hs-special">(</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#UnitId"><span class="hs-identifier">UnitId</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#Module"><span class="hs-identifier">Module</span></a></span><span> </span><span class="hs-special">)</span><span>
</span><span id="line-22"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.ByteCode.Types.html"><span class="hs-identifier">GHC.ByteCode.Types</span></a></span><span>      </span><span class="hs-special">(</span><span> </span><span class="annot"><a href="GHC.ByteCode.Types.html#ItblEnv"><span class="hs-identifier">ItblEnv</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.ByteCode.Types.html#CompiledByteCode"><span class="hs-identifier">CompiledByteCode</span></a></span><span> </span><span class="hs-special">)</span><span>
</span><span id="line-23"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html"><span class="hs-identifier">GHC.Utils.Outputable</span></a></span><span>
</span><span id="line-24"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Types.Var.html"><span class="hs-identifier">GHC.Types.Var</span></a></span><span>           </span><span class="hs-special">(</span><span> </span><span class="annot"><a href="GHC.Types.Var.html#Id"><span class="hs-identifier">Id</span></a></span><span> </span><span class="hs-special">)</span><span>
</span><span id="line-25"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/GHC.Fingerprint.Type.html#"><span class="hs-identifier">GHC.Fingerprint.Type</span></a></span><span>    </span><span class="hs-special">(</span><span> </span><span class="annot"><a href="../../base/src/GHC.Fingerprint.Type.html#Fingerprint"><span class="hs-identifier">Fingerprint</span></a></span><span> </span><span class="hs-special">)</span><span>
</span><span id="line-26"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Types.Name.Env.html"><span class="hs-identifier">GHC.Types.Name.Env</span></a></span><span>      </span><span class="hs-special">(</span><span> </span><span class="annot"><a href="GHC.Types.Name.Env.html#NameEnv"><span class="hs-identifier">NameEnv</span></a></span><span> </span><span class="hs-special">)</span><span>
</span><span id="line-27"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Types.Name.html"><span class="hs-identifier">GHC.Types.Name</span></a></span><span>          </span><span class="hs-special">(</span><span> </span><span class="annot"><a href="GHC.Types.Name.html#Name"><span class="hs-identifier">Name</span></a></span><span> </span><span class="hs-special">)</span><span>
</span><span id="line-28"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../ghci/src/GHCi.RemoteTypes.html#"><span class="hs-identifier">GHCi.RemoteTypes</span></a></span><span>        </span><span class="hs-special">(</span><span> </span><span class="annot"><a href="../../ghci/src/GHCi.RemoteTypes.html#ForeignHValue"><span class="hs-identifier">ForeignHValue</span></a></span><span> </span><span class="hs-special">)</span><span>
</span><span id="line-29"></span><span>
</span><span id="line-30"></span><span class="hs-keyword">type</span><span> </span><span id="ClosureEnv"><span class="annot"><a href="GHC.Runtime.Linker.Types.html#ClosureEnv"><span class="hs-identifier hs-var">ClosureEnv</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><a href="GHC.Types.Name.Env.html#NameEnv"><span class="hs-identifier hs-type">NameEnv</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Name.html#Name"><span class="hs-identifier hs-type">Name</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../ghci/src/GHCi.RemoteTypes.html#ForeignHValue"><span class="hs-identifier hs-type">ForeignHValue</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-31"></span><span>
</span><span id="line-32"></span><span class="hs-keyword">newtype</span><span> </span><span id="DynLinker"><span class="annot"><a href="GHC.Runtime.Linker.Types.html#DynLinker"><span class="hs-identifier hs-var">DynLinker</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-33"></span><span>  </span><span id="DynLinker"><span class="annot"><a href="GHC.Runtime.Linker.Types.html#DynLinker"><span class="hs-identifier hs-var">DynLinker</span></a></span></span><span> </span><span class="hs-special">{</span><span> </span><span id="dl_mpls"><span class="annot"><span class="annottext">DynLinker -&gt; MVar (Maybe PersistentLinkerState)
</span><a href="GHC.Runtime.Linker.Types.html#dl_mpls"><span class="hs-identifier hs-var hs-var">dl_mpls</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/GHC.MVar.html#MVar"><span class="hs-identifier hs-type">MVar</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Maybe"><span class="hs-identifier hs-type">Maybe</span></a></span><span> </span><span class="annot"><a href="GHC.Runtime.Linker.Types.html#PersistentLinkerState"><span class="hs-identifier hs-type">PersistentLinkerState</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-34"></span><span>
</span><span id="line-35"></span><span class="hs-keyword">data</span><span> </span><span id="PersistentLinkerState"><span class="annot"><a href="GHC.Runtime.Linker.Types.html#PersistentLinkerState"><span class="hs-identifier hs-var">PersistentLinkerState</span></a></span></span><span>
</span><span id="line-36"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span id="PersistentLinkerState"><span class="annot"><a href="GHC.Runtime.Linker.Types.html#PersistentLinkerState"><span class="hs-identifier hs-var">PersistentLinkerState</span></a></span></span><span> </span><span class="hs-special">{</span><span>
</span><span id="line-37"></span><span>
</span><span id="line-38"></span><span>       </span><span class="hs-comment">-- Current global mapping from Names to their true values</span><span>
</span><span id="line-39"></span><span>       </span><span id="closure_env"><span class="annot"><span class="annottext">PersistentLinkerState -&gt; ClosureEnv
</span><a href="GHC.Runtime.Linker.Types.html#closure_env"><span class="hs-identifier hs-var hs-var">closure_env</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Runtime.Linker.Types.html#ClosureEnv"><span class="hs-identifier hs-type">ClosureEnv</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-40"></span><span>
</span><span id="line-41"></span><span>       </span><span class="hs-comment">-- The current global mapping from RdrNames of DataCons to</span><span>
</span><span id="line-42"></span><span>       </span><span class="hs-comment">-- info table addresses.</span><span>
</span><span id="line-43"></span><span>       </span><span class="hs-comment">-- When a new Unlinked is linked into the running image, or an existing</span><span>
</span><span id="line-44"></span><span>       </span><span class="hs-comment">-- module in the image is replaced, the itbl_env must be updated</span><span>
</span><span id="line-45"></span><span>       </span><span class="hs-comment">-- appropriately.</span><span>
</span><span id="line-46"></span><span>       </span><span id="itbl_env"><span class="annot"><span class="annottext">PersistentLinkerState -&gt; ItblEnv
</span><a href="GHC.Runtime.Linker.Types.html#itbl_env"><span class="hs-identifier hs-var hs-var">itbl_env</span></a></span></span><span>    </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="GHC.ByteCode.Types.html#ItblEnv"><span class="hs-identifier hs-type">ItblEnv</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-47"></span><span>
</span><span id="line-48"></span><span>       </span><span class="hs-comment">-- The currently loaded interpreted modules (home package)</span><span>
</span><span id="line-49"></span><span>       </span><span id="bcos_loaded"><span class="annot"><span class="annottext">PersistentLinkerState -&gt; [Linkable]
</span><a href="GHC.Runtime.Linker.Types.html#bcos_loaded"><span class="hs-identifier hs-var hs-var">bcos_loaded</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="hs-special">[</span><span class="annot"><a href="GHC.Runtime.Linker.Types.html#Linkable"><span class="hs-identifier hs-type">Linkable</span></a></span><span class="hs-special">]</span><span class="hs-special">,</span><span>
</span><span id="line-50"></span><span>
</span><span id="line-51"></span><span>       </span><span class="hs-comment">-- And the currently-loaded compiled modules (home package)</span><span>
</span><span id="line-52"></span><span>       </span><span id="objs_loaded"><span class="annot"><span class="annottext">PersistentLinkerState -&gt; [Linkable]
</span><a href="GHC.Runtime.Linker.Types.html#objs_loaded"><span class="hs-identifier hs-var hs-var">objs_loaded</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="hs-special">[</span><span class="annot"><a href="GHC.Runtime.Linker.Types.html#Linkable"><span class="hs-identifier hs-type">Linkable</span></a></span><span class="hs-special">]</span><span class="hs-special">,</span><span>
</span><span id="line-53"></span><span>
</span><span id="line-54"></span><span>       </span><span class="hs-comment">-- The currently-loaded packages; always object code</span><span>
</span><span id="line-55"></span><span>       </span><span class="hs-comment">-- Held, as usual, in dependency order; though I am not sure if</span><span>
</span><span id="line-56"></span><span>       </span><span class="hs-comment">-- that is really important</span><span>
</span><span id="line-57"></span><span>       </span><span id="pkgs_loaded"><span class="annot"><span class="annottext">PersistentLinkerState -&gt; [UnitId]
</span><a href="GHC.Runtime.Linker.Types.html#pkgs_loaded"><span class="hs-identifier hs-var hs-var">pkgs_loaded</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="hs-special">[</span><span class="annot"><a href="GHC.Unit.Types.html#UnitId"><span class="hs-identifier hs-type">UnitId</span></a></span><span class="hs-special">]</span><span class="hs-special">,</span><span>
</span><span id="line-58"></span><span>
</span><span id="line-59"></span><span>       </span><span class="hs-comment">-- we need to remember the name of previous temporary DLL/.so</span><span>
</span><span id="line-60"></span><span>       </span><span class="hs-comment">-- libraries so we can link them (see #10322)</span><span>
</span><span id="line-61"></span><span>       </span><span id="temp_sos"><span class="annot"><span class="annottext">PersistentLinkerState -&gt; [(FilePath, FilePath)]
</span><a href="GHC.Runtime.Linker.Types.html#temp_sos"><span class="hs-identifier hs-var hs-var">temp_sos</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="hs-special">[</span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/GHC.IO.html#FilePath"><span class="hs-identifier hs-type">FilePath</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span class="hs-special">)</span><span class="hs-special">]</span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-62"></span><span>
</span><span id="line-63"></span><span class="hs-comment">-- | Information we can use to dynamically link modules into the compiler</span><span>
</span><span id="line-64"></span><span class="hs-keyword">data</span><span> </span><span id="Linkable"><span class="annot"><a href="GHC.Runtime.Linker.Types.html#Linkable"><span class="hs-identifier hs-var">Linkable</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="LM"><span class="annot"><a href="GHC.Runtime.Linker.Types.html#LM"><span class="hs-identifier hs-var">LM</span></a></span></span><span> </span><span class="hs-special">{</span><span>
</span><span id="line-65"></span><span>  </span><span id="linkableTime"><span class="annot"><span class="annottext">Linkable -&gt; UTCTime
</span><a href="GHC.Runtime.Linker.Types.html#linkableTime"><span class="hs-identifier hs-var hs-var">linkableTime</span></a></span></span><span>     </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../time/src/Data.Time.Clock.Internal.UTCTime.html#UTCTime"><span class="hs-identifier hs-type">UTCTime</span></a></span><span class="hs-special">,</span><span>          </span><span class="hs-comment">-- ^ Time at which this linkable was built</span><span>
</span><span id="line-66"></span><span>                                        </span><span class="hs-comment">-- (i.e. when the bytecodes were produced,</span><span>
</span><span id="line-67"></span><span>                                        </span><span class="hs-comment">--       or the mod date on the files)</span><span>
</span><span id="line-68"></span><span>  </span><span id="linkableModule"><span class="annot"><span class="annottext">Linkable -&gt; Module
</span><a href="GHC.Runtime.Linker.Types.html#linkableModule"><span class="hs-identifier hs-var hs-var">linkableModule</span></a></span></span><span>   </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#Module"><span class="hs-identifier hs-type">Module</span></a></span><span class="hs-special">,</span><span>           </span><span class="hs-comment">-- ^ The linkable module itself</span><span>
</span><span id="line-69"></span><span>  </span><span id="linkableUnlinked"><span class="annot"><span class="annottext">Linkable -&gt; [Unlinked]
</span><a href="GHC.Runtime.Linker.Types.html#linkableUnlinked"><span class="hs-identifier hs-var hs-var">linkableUnlinked</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Runtime.Linker.Types.html#Unlinked"><span class="hs-identifier hs-type">Unlinked</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-70"></span><span>    </span><span class="hs-comment">-- ^ Those files and chunks of code we have yet to link.</span><span>
</span><span id="line-71"></span><span>    </span><span class="hs-comment">--</span><span>
</span><span id="line-72"></span><span>    </span><span class="hs-comment">-- INVARIANT: A valid linkable always has at least one 'Unlinked' item.</span><span>
</span><span id="line-73"></span><span>    </span><span class="hs-comment">-- If this list is empty, the Linkable represents a fake linkable, which</span><span>
</span><span id="line-74"></span><span>    </span><span class="hs-comment">-- is generated in HscNothing mode to avoid recompiling modules.</span><span>
</span><span id="line-75"></span><span>    </span><span class="hs-comment">--</span><span>
</span><span id="line-76"></span><span>    </span><span class="hs-comment">-- ToDo: Do items get removed from this list when they get linked?</span><span>
</span><span id="line-77"></span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-78"></span><span>
</span><span id="line-79"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680921157"><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="GHC.Runtime.Linker.Types.html#Linkable"><span class="hs-identifier hs-type">Linkable</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-80"></span><span>  </span><span id="local-6989586621680921148"><span class="annot"><span class="annottext">ppr :: Linkable -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Runtime.Linker.Types.html#LM"><span class="hs-identifier hs-type">LM</span></a></span><span> </span><span id="local-6989586621680921146"><span class="annot"><span class="annottext">UTCTime
</span><a href="#local-6989586621680921146"><span class="hs-identifier hs-var">when_made</span></a></span></span><span> </span><span id="local-6989586621680921145"><span class="annot"><span class="annottext">Module
</span><a href="#local-6989586621680921145"><span class="hs-identifier hs-var">mod</span></a></span></span><span> </span><span id="local-6989586621680921144"><span class="annot"><span class="annottext">[Unlinked]
</span><a href="#local-6989586621680921144"><span class="hs-identifier hs-var">unlinkeds</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-81"></span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">FilePath -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">FilePath
</span><span class="hs-string">&quot;LinkableM&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#parens"><span class="hs-identifier hs-var">parens</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">FilePath -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">UTCTime -&gt; FilePath
forall a. Show a =&gt; a -&gt; FilePath
</span><a href="../../base/src/GHC.Show.html#show"><span class="hs-identifier hs-var">show</span></a></span><span> </span><span class="annot"><span class="annottext">UTCTime
</span><a href="#local-6989586621680921146"><span class="hs-identifier hs-var">when_made</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Module -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Module
</span><a href="#local-6989586621680921145"><span class="hs-identifier hs-var">mod</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-82"></span><span>       </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#nest"><span class="hs-identifier hs-var">nest</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">3</span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[Unlinked] -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">[Unlinked]
</span><a href="#local-6989586621680921144"><span class="hs-identifier hs-var">unlinkeds</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-83"></span><span>
</span><span id="line-84"></span><span class="hs-comment">-- | Objects which have yet to be linked by the compiler</span><span>
</span><span id="line-85"></span><span class="hs-keyword">data</span><span> </span><span id="Unlinked"><span class="annot"><a href="GHC.Runtime.Linker.Types.html#Unlinked"><span class="hs-identifier hs-var">Unlinked</span></a></span></span><span>
</span><span id="line-86"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span id="DotO"><span class="annot"><a href="GHC.Runtime.Linker.Types.html#DotO"><span class="hs-identifier hs-var">DotO</span></a></span></span><span> </span><span class="annot"><a href="../../base/src/GHC.IO.html#FilePath"><span class="hs-identifier hs-type">FilePath</span></a></span><span>      </span><span class="hs-comment">-- ^ An object file (.o)</span><span>
</span><span id="line-87"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span id="DotA"><span class="annot"><a href="GHC.Runtime.Linker.Types.html#DotA"><span class="hs-identifier hs-var">DotA</span></a></span></span><span> </span><span class="annot"><a href="../../base/src/GHC.IO.html#FilePath"><span class="hs-identifier hs-type">FilePath</span></a></span><span>      </span><span class="hs-comment">-- ^ Static archive file (.a)</span><span>
</span><span id="line-88"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span id="DotDLL"><span class="annot"><a href="GHC.Runtime.Linker.Types.html#DotDLL"><span class="hs-identifier hs-var">DotDLL</span></a></span></span><span> </span><span class="annot"><a href="../../base/src/GHC.IO.html#FilePath"><span class="hs-identifier hs-type">FilePath</span></a></span><span>    </span><span class="hs-comment">-- ^ Dynamically linked library file (.so, .dll, .dylib)</span><span>
</span><span id="line-89"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span id="BCOs"><span class="annot"><a href="GHC.Runtime.Linker.Types.html#BCOs"><span class="hs-identifier hs-var">BCOs</span></a></span></span><span> </span><span class="annot"><a href="GHC.ByteCode.Types.html#CompiledByteCode"><span class="hs-identifier hs-type">CompiledByteCode</span></a></span><span>
</span><span id="line-90"></span><span>         </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Runtime.Linker.Types.html#SptEntry"><span class="hs-identifier hs-type">SptEntry</span></a></span><span class="hs-special">]</span><span>    </span><span class="hs-comment">-- ^ A byte-code object, lives only in memory. Also</span><span>
</span><span id="line-91"></span><span>                       </span><span class="hs-comment">-- carries some static pointer table entries which</span><span>
</span><span id="line-92"></span><span>                       </span><span class="hs-comment">-- should be loaded along with the BCOs.</span><span>
</span><span id="line-93"></span><span>                       </span><span class="hs-comment">-- See Note [Grant plan for static forms] in</span><span>
</span><span id="line-94"></span><span>                       </span><span class="hs-comment">-- &quot;GHC.Iface.Tidy.StaticPtrTable&quot;.</span><span>
</span><span id="line-95"></span><span>
</span><span id="line-96"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680921132"><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="GHC.Runtime.Linker.Types.html#Unlinked"><span class="hs-identifier hs-type">Unlinked</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-97"></span><span>  </span><span id="local-6989586621680921127"><span class="annot"><span class="annottext">ppr :: Unlinked -&gt; SDoc
</span><a href="#local-6989586621680921127"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Runtime.Linker.Types.html#DotO"><span class="hs-identifier hs-type">DotO</span></a></span><span> </span><span id="local-6989586621680921126"><span class="annot"><span class="annottext">FilePath
</span><a href="#local-6989586621680921126"><span class="hs-identifier hs-var">path</span></a></span></span><span class="hs-special">)</span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">FilePath -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">FilePath
</span><span class="hs-string">&quot;DotO&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">FilePath -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">FilePath
</span><a href="#local-6989586621680921126"><span class="hs-identifier hs-var">path</span></a></span><span>
</span><span id="line-98"></span><span>  </span><span class="annot"><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Runtime.Linker.Types.html#DotA"><span class="hs-identifier hs-type">DotA</span></a></span><span> </span><span id="local-6989586621680921125"><span class="annot"><span class="annottext">FilePath
</span><a href="#local-6989586621680921125"><span class="hs-identifier hs-var">path</span></a></span></span><span class="hs-special">)</span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">FilePath -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">FilePath
</span><span class="hs-string">&quot;DotA&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">FilePath -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">FilePath
</span><a href="#local-6989586621680921125"><span class="hs-identifier hs-var">path</span></a></span><span>
</span><span id="line-99"></span><span>  </span><span class="annot"><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Runtime.Linker.Types.html#DotDLL"><span class="hs-identifier hs-type">DotDLL</span></a></span><span> </span><span id="local-6989586621680921124"><span class="annot"><span class="annottext">FilePath
</span><a href="#local-6989586621680921124"><span class="hs-identifier hs-var">path</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">FilePath -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">FilePath
</span><span class="hs-string">&quot;DotDLL&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">FilePath -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">FilePath
</span><a href="#local-6989586621680921124"><span class="hs-identifier hs-var">path</span></a></span><span>
</span><span id="line-100"></span><span>  </span><span class="annot"><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Runtime.Linker.Types.html#BCOs"><span class="hs-identifier hs-type">BCOs</span></a></span><span> </span><span id="local-6989586621680921123"><span class="annot"><span class="annottext">CompiledByteCode
</span><a href="#local-6989586621680921123"><span class="hs-identifier hs-var">bcos</span></a></span></span><span> </span><span id="local-6989586621680921122"><span class="annot"><span class="annottext">[SptEntry]
</span><a href="#local-6989586621680921122"><span class="hs-identifier hs-var">spt</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">FilePath -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">FilePath
</span><span class="hs-string">&quot;BCOs&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">CompiledByteCode -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">CompiledByteCode
</span><a href="#local-6989586621680921123"><span class="hs-identifier hs-var">bcos</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">[SptEntry] -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">[SptEntry]
</span><a href="#local-6989586621680921122"><span class="hs-identifier hs-var">spt</span></a></span><span>
</span><span id="line-101"></span><span>
</span><span id="line-102"></span><span class="hs-comment">-- | An entry to be inserted into a module's static pointer table.</span><span>
</span><span id="line-103"></span><span class="hs-comment">-- See Note [Grand plan for static forms] in &quot;GHC.Iface.Tidy.StaticPtrTable&quot;.</span><span>
</span><span id="line-104"></span><span class="hs-keyword">data</span><span> </span><span id="SptEntry"><span class="annot"><a href="GHC.Runtime.Linker.Types.html#SptEntry"><span class="hs-identifier hs-var">SptEntry</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="SptEntry"><span class="annot"><a href="GHC.Runtime.Linker.Types.html#SptEntry"><span class="hs-identifier hs-var">SptEntry</span></a></span></span><span> </span><span class="annot"><a href="GHC.Types.Var.html#Id"><span class="hs-identifier hs-type">Id</span></a></span><span> </span><span class="annot"><a href="../../base/src/GHC.Fingerprint.Type.html#Fingerprint"><span class="hs-identifier hs-type">Fingerprint</span></a></span><span>
</span><span id="line-105"></span><span>
</span><span id="line-106"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680921118"><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="GHC.Runtime.Linker.Types.html#SptEntry"><span class="hs-identifier hs-type">SptEntry</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-107"></span><span>  </span><span id="local-6989586621680921113"><span class="annot"><span class="annottext">ppr :: SptEntry -&gt; SDoc
</span><a href="#local-6989586621680921113"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Runtime.Linker.Types.html#SptEntry"><span class="hs-identifier hs-type">SptEntry</span></a></span><span> </span><span id="local-6989586621680921112"><span class="annot"><span class="annottext">Id
</span><a href="#local-6989586621680921112"><span class="hs-identifier hs-var">id</span></a></span></span><span> </span><span id="local-6989586621680921111"><span class="annot"><span class="annottext">Fingerprint
</span><a href="#local-6989586621680921111"><span class="hs-identifier hs-var">fpr</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Id -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Id
</span><a href="#local-6989586621680921112"><span class="hs-identifier hs-var">id</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#colon"><span class="hs-identifier hs-var">colon</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Fingerprint -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Fingerprint
</span><a href="#local-6989586621680921111"><span class="hs-identifier hs-var">fpr</span></a></span><span>
</span><span id="line-108"></span><span>
</span><span id="line-109"></span></pre></body></html>